package cl.gob.minvu.catastromobile.dao;

import java.util.ArrayList;
import java.util.List;

import cl.gob.minvu.catastromobile.entities.Comuna;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

/**
 * @author psep
 *
 */
public class ComunaDAO {
	
	private DatabaseHelper dataHelper;
	private SQLiteDatabase db;

	public static String[] FIELDS_COMUNA = { "idComuna", "codRegion", "nombreComuna" };
	public static String TABLE_COMUNA = "Comuna";
	
	/**
	 * @param context
	 */
	public ComunaDAO(Context context) {
		this.dataHelper = new DatabaseHelper(context);
	}
	
	public void open() {
		this.db = this.dataHelper.getWritableDatabase();
	}
	
	public void close() {
		this.db.close();
	}
	
	@Override
	public void finalize() {
		this.dataHelper.close();
	}
	
	/**
	 * @return
	 */
	public List<Comuna> retrieve(int codRegion) {
		List<Comuna> comunas = this.defaultComuna();
		String[] params = { Integer.toString(codRegion) };
		String conditions = "codRegion=?";
		this.open();
		
		Cursor c = this.db.query(TABLE_COMUNA, FIELDS_COMUNA,
				conditions, params, null, null, FIELDS_COMUNA[2] + " ASC");
		
		while (c.moveToNext()) {
			Comuna comuna = new Comuna();
			comuna.id = c.getInt(0);
			comuna.codRegion = c.getInt(1);
			comuna.nombre = c.getString(2);
			comunas.add(comuna);
		}
		
		c.close();
		this.close();

		return comunas;
	}
	
	/**
	 * @return
	 */
	public List<Comuna> defaultComuna() {
		List<Comuna> comunas = new ArrayList<Comuna>();
		Comuna comuna = new Comuna();
		comuna.id = 0;
		comuna.nombre = "[Seleccione comuna]";
		comunas.add(comuna);
		
		return comunas;
	}

}
